package com.jumi.microservice.dto.wdt;

import com.jumi.microservice.common.base.dto.BaseRequest;

import java.math.BigDecimal;

/**
 * https://open.wangdian.cn/qyb/open/apidoc/doc?path=trade_push.php
 *
 * @author Dirk
 * @Date 2020-08-18 10:19
 */
public class WdtGoodsRequest extends BaseRequest {

    private static final long serialVersionUID = -2685773519273197810L;

    /**
     * 子订单编号
     * <p>
     * 平台订单货品表主键,子订单唯一标识,同一个sid下通过本接口新增订单的oid（子订单编号）要保证唯一；
     * 如果oid重复,ERP生成系统单（递交）时会提示“订单货品数量不一致xxxxxx”
     */
    private String oid;

    /**
     * 数量
     */
    private BigDecimal num;

    /**
     * 单价
     */
    private BigDecimal price;

    /**
     * 状态
     */
    private Byte status;

    /**
     * 退款状态
     * <p>
     * 0:无退款,1:取消退款,2:已申请退款,3:等待退货,4:等待收货,5:退款成功。
     */
    private Byte refundStatus;

    /**
     * 平台货品ID
     * <p>
     * 平台系统货品（SPU）的唯一标识。goods_id和spec_id不能同时为空
     */
    private String goodsId;

    /**
     * 平台规格ID
     * <p>
     * 平台系统单品（SKU）的的唯一标识，尽量不为空。
     */
    private String specId;

    /**
     * 平台货品SPU编码
     * <p>
     * 对应ERP货品编号，尽量不为空
     */
    private String goodsNo;

    /**
     * 规格编码
     * <p>
     * 平台货品SKU唯一码，对应ERP商家编码
     */
    private String specNo;

    /**
     * 货品名称
     */
    private String goodsName;

    /**
     * 调整
     * <p>
     * 客服调整总金额(大于0加价，小于0减价，是折扣来源的一部分,没有传0)
     */
    private BigDecimal adjustAmount;

    /**
     * 优惠
     * <p>
     * 下单总折扣，客户下单时折扣(比如促销打折，不包含客服调整、分摊折扣，没有传0)
     */
    private BigDecimal discount;

    /**
     * 分摊优惠
     * <p>
     * 分摊总折扣，由总订单分摊而来，一般是付款时产生，如使用优惠券，没有传0。
     * 分摊优惠传值注意：例如三个商品，优惠10，分摊优惠可以是：3/3/4，或者3.33/3.33/3.34.即最后一个商品的分摊优惠使用减法计算
     */
    private BigDecimal shareDiscount;

    public String getOid() {
        return oid;
    }

    public void setOid(String oid) {
        this.oid = oid;
    }

    public BigDecimal getNum() {
        return num;
    }

    public void setNum(BigDecimal num) {
        this.num = num;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public Byte getStatus() {
        return status;
    }

    public void setStatus(Byte status) {
        this.status = status;
    }

    public Byte getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(Byte refundStatus) {
        this.refundStatus = refundStatus;
    }

    public String getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(String goodsId) {
        this.goodsId = goodsId;
    }

    public String getSpecId() {
        return specId;
    }

    public void setSpecId(String specId) {
        this.specId = specId;
    }

    public String getGoodsNo() {
        return goodsNo;
    }

    public void setGoodsNo(String goodsNo) {
        this.goodsNo = goodsNo;
    }

    public String getSpecNo() {
        return specNo;
    }

    public void setSpecNo(String specNo) {
        this.specNo = specNo;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public BigDecimal getAdjustAmount() {
        return adjustAmount;
    }

    public void setAdjustAmount(BigDecimal adjustAmount) {
        this.adjustAmount = adjustAmount;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public BigDecimal getShareDiscount() {
        return shareDiscount;
    }

    public void setShareDiscount(BigDecimal shareDiscount) {
        this.shareDiscount = shareDiscount;
    }
}
